home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 7 / FM Towns Free Software Collection 7.iso / taropyon / guilib3 / inc / spgetopt.h < prev    next >
C/C++ Source or Header  |  1993-11-30  |  1KB  |  73 lines

  1. #ifndef    _SPGETOPT_H
  2. #define    _SPGETOPT_H
  3.  
  4. #ifndef    _SPDEFS_H
  5. #    include    <spdefs.h>
  6. #endif
  7.  
  8. #define    GOP_MODE_NORMAL                (0)
  9. #define    GOP_MODE_SET_ETC_UNKNOWN    (1)
  10.  
  11. #define    GOP_TYP_FLAG    (1)    /* ex. -key                    */
  12. #define    GOP_TYP_DIGIT    (2)    /* ex. -key <n>                */
  13. #define    GOP_TYP_NAME    (3)    /* ex. -key <name>            */
  14. #define    GOP_TYP_ON_OFF    (4)    /* ex. -key <on|off>        */
  15. #define    GOP_TYP_SELECT    (5)    /* ex. -key <k1|k2|k3...>    */
  16.  
  17. #define    GOP_VAR_CHAR    (1)
  18. #define    GOP_VAR_SHORT    (2)
  19. #define    GOP_VAR_INT        (4)
  20. #define    GOP_VAR_STR        (16)
  21.  
  22. typedef    struct
  23. {
  24.     int            typ;        /* 種別                    */
  25.     CONST char    *name;        /* オプションネーム        */
  26.     int            varTyp;
  27.     void        *varPtr;
  28.     void        *ptr;
  29. } GOPKEY_T;
  30.  
  31. typedef    struct
  32. {
  33.     int            def;    /* デフォルト値    */
  34.     int            min;
  35.     int            max;
  36. } GOP_DIGIT_T;
  37.  
  38. typedef    struct
  39. {
  40.     int            ret;
  41.     CONST char    *name;
  42. } GOP_SELECT_OBJ_T;
  43.  
  44. typedef    struct
  45. {
  46.     int                    n;
  47.     GOP_SELECT_OBJ_T    *obj;
  48. } GOP_SELECT_T;
  49.  
  50.  
  51. typedef    struct    _getoptetc_t
  52. {
  53.     struct _getoptetc_t    *next;
  54.     char                *s;
  55. } GOPETC_T;
  56.  
  57.  
  58. typedef    struct
  59. {
  60.     int                mode;
  61.     CONST char        *sw;    /* オプションスイッチャー    */
  62.     GOPKEY_T        *key;
  63.     int                (*errFunc)(CONST char *);
  64.     int                etcNum;
  65.     GOPETC_T        *etc;
  66. } GOP_T;
  67.  
  68. extern    char    GopDefaultStr[];
  69. extern    int        GOP_decode( GOP_T *gop, int argc, char **argv );
  70. extern    void    GOP_free( GOP_T *gop );
  71.  
  72. #endif
  73.